package apps.estoque.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

import apps.admin.model.Usuario;

@Entity
public class Categoria implements Serializable {

    private static final long serialVersionUID = -7293608718444363299L;
    @ManyToOne(fetch = FetchType.EAGER, targetEntity = Usuario.class)
    @JoinColumn(name = "usuario_id")
    private Usuario cadastradoPor;
    private Date dataCadastro;
    private String descricao;
    @Id
    @GeneratedValue
    private Long id;
    @Column(length = 100, nullable = false, unique = true)
    private String nome;
    @OneToMany(fetch = FetchType.LAZY, targetEntity = Produto.class)
    @JoinColumn(name = "categoria_id")
    private List<Produto> produtos;

    public Usuario getCadastradoPor() {
	return cadastradoPor;
    }

    public void setCadastradoPor(Usuario cadastradoPor) {
	this.cadastradoPor = cadastradoPor;
    }

    public Date getDataCadastro() {
	return dataCadastro;
    }

    public void setDataCadastro(Date dataCadastro) {
	this.dataCadastro = dataCadastro;
    }

    public String getDescricao() {
	return descricao;
    }

    public void setDescricao(String descricao) {
	this.descricao = descricao;
    }

    public Long getId() {
	return id;
    }

    public void setId(Long id) {
	this.id = id;
    }

    public String getNome() {
	return nome;
    }

    public void setNome(String nome) {
	this.nome = nome;
    }

    public List<Produto> getProdutos() {
	return produtos;
    }

    public void setProdutos(List<Produto> produtos) {
	this.produtos = produtos;
    }

}
